package cn.tedu.st.base.result;

/**
 * 常见的状态码和消息枚举类
 */
public enum ResultCode {

    // 成功
    SUCCESS(200, "操作成功"),
    //登录成功
    LOGIN_SUCCESS(2000, "登录成功"),
    //注销成功
    LOGOUT_SUCCESS(2000, "注销成功"),
    //注册成功
    REGISTER_SUCCESS(2000, "注册成功"),
    //用户名已存在
    USERNAME_EXIST(400, "用户名已存在"),
    //登陆失败
    LOGIN_FAILURE(500, "登录失败"),
    //注册失败
    REGISTER_FAILURE(400, "注册失败"),
    // 失败
    FAILURE(500, "操作失败"),
    //用户名为空
    USERNAME_IS_NULL(400, "用户名为空"),
    //用户不存在
    USERNAME_NOT_EXIST(400, "用户名不存在"),
    //密码错误
    USERNAME_PASSWORD_ERROR(500, "用户名或密码错误"),
    //密码过期
    USERNAME_PASSWORD_EXPIRED(500, "密码过期"),
    //未登录
    UNAUTHORIZED_USER(400, "匿名（未登录）用户访问权限不够,请先登录！"),
    //身份认证异常
    AUTHENTICATION_EXCEPTION(400, "身份认证失败"),
    //token为空
    TOKEN_IS_NULL(400, "token为空"),
    //token过期
    TOKEN_EXPIRED(400, "token已过期"),
    // 参数错误
    PARAM_ERROR(300, "参数错误"),

    // 未授权
    UNAUTHORIZED(401, "未授权"),

    //禁止访问
    FORBIDDEN(403, "权限不足,请联系管理员"),
    //账户封禁
    ACCOUNT_DISABLED(500, "账户被禁用,登录失败"),

    //账户被锁定
    ACCOUNT_LOCKED(500, "账户被锁定,登录失败"),
    //账户过期
    ACCOUNT_EXPIRED(500, "账户过期,登录失败"),
    // 资源未找到
    NOT_FOUND(404, "资源未找到"),

    // 服务器内部错误
    SERVER_ERROR(500, "服务器内部错误"),
    //系统繁忙, 请稍后再试
    SERVER_BUSY(500, "系统繁忙, 请稍后再试");





    // 状态码
    private final int code;

    // 消息
    private final String message;

    /**
     * 构造方法
     */
    ResultCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    // Getter 方法
    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}